/**
 * ===============================================================================
 * ========================== 图片处理工具类 ======================================
 * ===============================================================================
 */

let logStrPrefix = "utils.fileprocess.picUtil.js"


/**
 * 将base64字符串转为本地图片，并返回本地图片地址。
 */
export function convertBase64Str_toPic(base64Str, picUrl) {

    //根据网络图片地址(picUrl)获取图片名称
    let picName = getPicName_fromPicUrl(picUrl)

    /**
     * 若没有"访客预约》文件存储目录"时，创建该目录
     */
    let fileSystemManager = wx.getFileSystemManager()
    //访客预约》文件存储目录
    let reservationFileDir = wx.env.USER_DATA_PATH + "/reservation/"

    //分析该目录是否已创建
    try {
        fileSystemManager.accessSync(reservationFileDir)
    } catch (error) {
        //若没有该存储目录时，创建该目录
        try{
            fileSystemManager.mkdirSync(reservationFileDir, true)
        }catch(error2){
            console.error("目录reservationFileDir[" + reservationFileDir+"]创建失败!",error2)
            return null
        }
    }
    
    /**
     * 将base64字符串转为本地图片，并返回本地图片地址。
     */
    let filePath = reservationFileDir + picName
    try {
        fileSystemManager.writeFileSync(filePath, base64Str, "base64")
        //console.info(logStrPrefix + " 将base64字符串转为本地图片，并返回本地图片地址,已完成..")
        return filePath
    } catch (error) {
        console.error(logStrPrefix + " 将base64字符串转为本地图片,并返回本地图片地址,出错!", error)
    }
}

/**
 * 根据网络图片地址(picUrl)获取图片名称。
 * 返回的图片名称格式为《abcd.jpg》。
 */
export function getPicName_fromPicUrl(picUrl) {
    if (picUrl == null) {
        return null
    }
    let picName = picUrl.substring(picUrl.lastIndexOf("/") + 1)
    return picName
}

